<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">

<!-- Copyright 2004 The Apache Software Foundation

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

         http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License. -->
<html>
<head>
<!-- InstanceBeginEditable name="doctitle" -->
<title>Methods for Types Generated From Schema</title>
<!-- InstanceEndEditable -->
<!--(Meta)==========================================================-->

<meta http-equiv=Content-Type content="text/html; charset=$CHARSET;">


<!-- InstanceBeginEditable name="metatags" -->

<meta name="component" content="">
<!-- In the description metatag, please provide a BRIEF description of the topic contents. -->
<meta name="description" content="">
<!-- In the component metatag, please list keywords that will help a user search for this topic. -->
<meta name="keywords" content="">
<!-- InstanceEndEditable -->

<!--(Links)=========================================================-->
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEndEditable -->
<link href="../xmlbeans.css" rel="stylesheet" type="text/css">
<a href="../../../core/index.html" id="index"></a>
<script language="JavaScript" src="../../../core/topicInfo.js"></script>
<script language="JavaScript" src="../../../core/CookieClass.js"></script>
<script language="JavaScript" src="../../../core/displayContent.js"></script>
</head>

<!--(Body)==========================================================-->
<body>
<script language="JavaScript">

</script>
<!-- InstanceBeginEditable name="body" -->
<div id=topictitle>
  <p class=Title>Methods for Types Generated From Schema</p>
</div>
<div id=topictext>
  <p>As you may have seen in <a href="conGettingStartedwithXMLBeans.html">Getting
    Started with XMLBeans</a>, you use the types generated from schema to access
    XML instances based on the schema. If you're familiar with the JavaBeans technology,
    the conventions used in the generated API will be recognizable. </p>
  <p>In general, elements and attributes are treated as &quot;properties&quot;
    in the JavaBeans sense. In other words, as you would with JavaBeans properties,
    you manipulate parts of the XML through accessor methods such as getCustomer()
    (where you have a &quot;customer&quot; element), setId(String) (where you
    have an &quot;id&quot; attribute), and so on. However, because schema structures
    can be somewhat complex, XMLBeans provides several other method styles for
    handling those structures in XML instances.</p>
  <div>
    <h2>Prototypes for Methods in Generated Interfaces</h2>
    <p>Several methods are generated for each element or attribute within the
      complex type. This topic lists each method that could be generated for a
      given element or attribute. </p>
    <p>Note that whether or not a given method is generated is based on how the
      element or attribute is defined in schema. For example, a customer element
      definition with a <span class="langinline">maxOccurs</span> attribute value
      of 1 will result in a getCustomer method, but not a getCustomerArray method
      &#8212; after all, only one customer element is possible in an instance
      document.</p>
    <p>Note, too, that there may be two sets of parallel methods: one whose prototype
      starts with an &quot;x&quot;. An &quot;x&quot; method such as xgetName or
      xsetName would be generated for elements or attribute whose type is a simple
      type. A simple type may be one of the 44 built-in simple types or may be
      a restriction in schema of one of those built-in types. Of course, an attribute
      will always be of a simple type. For built-in simple types, an &quot;x&quot;
      method will get or set one of the types provided with XMLBeans, such as
      <span class="langinline"><a href="../reference/org/apache/xmlbeans/XmlString.html">XmlString</a></span>,
      <span class="langinline"><a href="../reference/org/apache/xmlbeans/XmlInteger.html">XmlInteger</a></span>,
      <span class="langinline"><a href="../reference/org/apache/xmlbeans/XmlGDay.html">XmlGDay</a></span>,
      and so on. For derived types, the &quot;x&quot; method will get or set a
      generated type.</p>
    <h3>Single Occurrence Methods</h3>
    <p>Methods generated for elements or attributes that allow a single occurrence.
      An element is singular if it was declared with maxOccurs=&quot;1&quot;.
      An attribute is singular if it was not declared with use=&quot;prohibited&quot;.</p>
    <pre>
Type getFoo()
void setFoo(Type newValue)
</pre>
  </div>
  <blockquote>
    <div>Returns or sets the value of Foo. Generated when Foo is an attribute,
      or is an element that can occur only once as a child.</div>
  </blockquote>
  <div>
    <hr size="1">
    <pre>XmlType xgetFoo()
void xsetFoo(XmlType newValue)</pre>
  </div>
  <blockquote>
    <div>Returns or sets the value of Foo as an XMLBean simple type. These methods
      are generated if Foo's type is defined in schema as a simpleType.</div>
  </blockquote>
  <div>
    <hr size="1">
    <pre>boolean isNilFoo()
void setNilFoo()</pre>
  </div>
  <blockquote>
    <div>Determines or specifies whether the Foo element is nil (in other words,
      &quot;null&quot; in schema terms), meaning it can be empty. A nil element
      looks something like this:</div>
    <div>
      <pre>&lt;foo/&gt;</pre>
    </div>
    <div>These methods are only generated when an element type is declared as
      nillable in schema &#8212; it has a nillable=&quot;true&quot; attribute.</div>
  </blockquote>
  <div>
    <hr size="1">
    <pre>XmlType addNewFoo()</pre>
  </div>
  <blockquote>
    <div>Adds a new Foo as an XMLBean simple to the document, or returns Foo's
      value if one exists already.</div>
  </blockquote>
  <div>
    <hr size="1">
    <pre>boolean isSetFoo()
void unSetFoo()</pre>
  </div>
  <blockquote>
    <div>Determines whether the Foo element or attribute exists in the document;
      removes Foo. These methods are generated for elements and attributes that
      are optional. In schema, and optional element has an <span class="langinline">minOccurs</span>
      attribute set to &quot;0&quot;; an optional attribute has a <span class="langinline">use</span>
      attribute set to &quot;optional&quot;.</div>
  </blockquote>
  <div>
    <hr size="1">
    <h3>Multiple Occurrence Methods</h3>
    <p>Methods generated for elements that allow multiple occurrences. </p>
    <p>An element may occur multiple times if it has a <span class="langinline">maxOccurs</span>
      attribute set to &quot;unbounded&quot; or greater than 1. Attributes can't
      occur multiple times.</p>
    <pre>Type[] getFooArray()
void setFooArray(Type[] newValue) </pre>
  </div>
  <blockquote>
    <div>Returns or sets all of the Foo elements. </div>
    <div>
      <pre>
// Get an array of the all of the purchase-order elements item children.
Item[] items = myPO.getItemArray();
</pre>
    </div>
  </blockquote>
  <div>
    <hr size="1">
    <pre>Type getFooArray(int index)
void setFooArray(Type newValue, int index)</pre>
  </div>
  <blockquote>
    <div>Returns or sets the Foo child element at the specified index.</div>
    <div>
      <pre>// Sets the value of the third item child element.
myPO.setItem(newItem, 2);</pre>
    </div>
  </blockquote>
  <div>
    <hr size="1">
    <pre>int sizeOfFooArray()</pre>
  </div>
  <blockquote>
    <div>Returns the number of Foo child elements.</div>
    <div>
      <pre>// Returns the number of item child elements.
int itemCount = myPO.sizeOfItemArray();</pre>
    </div>
  </blockquote>
  <div>
    <hr size="1">
    <pre>void removeFoo(int index)</pre>
  </div>
  <blockquote>
    <div>Removes the Foo child element at the specified index.</div>
  </blockquote>
  <div>
    <hr size="1">
    <pre>XmlType[] xgetFooArray()
void xsetFooArray(XmlType[] arrayOfNewValues)</pre>
  </div>
  <blockquote>
    <div>Returns or sets all of the Foo elements as XMLBeans simple types. Generated
      only when the Foo element is defined as a simple type.</div>
    <div>
      <pre>/*
 * Returns values of all the phone child elements of an employee element,
 * where the phone element has been defined as xs:string.
 */
XmlString[] empPhones = currentEmployee.xGetPhoneArray();
</pre>
    </div>
  </blockquote>
  <div>
    <hr size="1">
    <pre>XmlType xgetFooArray(int index)
void xsetFooArray(int index, XmlType newValue)</pre>
  </div>
  <blockquote>
    <div>Returns or sets the Foo element at the specified index, using an XMLBeans
      simple type value. Generated for an element defined as a simple type in
      schema.</div>
  </blockquote>
  <div>
    <hr size="1">
    <pre>void insertFoo(int index, FooType newValue)</pre>
  </div>
  <blockquote>
    <div>Inserts the specified Foo child element at the specified index.</div>
  </blockquote>
  <div>
    <hr size="1">
    <pre>void addFoo(FooType newValue)</pre>
  </div>
  <blockquote>
    <div>Adds the specified Foo to the end of the list of Foo child elements.</div>
  </blockquote>
  <div>
    <hr size="1">
    <pre>XmlType insertNewFoo(int index)</pre>
  </div>
  <blockquote>
    <div>Inserts a new Foo at the specified index, returning an XMLBeans simple
      type representing the new element; returns the existing Foo if there's already
      one at index.</div>
  </blockquote>
  <div>
    <hr size="1">
    <pre>XmlType addNewFoo()</pre>
  </div>
  <blockquote>
    <div>Adds a new Foo element to the end of the list of Foo child elements,
      returning an XMLBeans simple type representing the newly added element.</div>
  </blockquote>
  <div>
    <hr size="1">
    <pre>boolean isNilFooArray(int index)
void setNilFooArray(int index)</pre>
  </div>
  <blockquote>
    <div>Determines or specifies whether the Foo element at the specified index
      is nil.</div>
  </blockquote>
  <div>
    <hr size="1">
  </div>
  <div id="topictext"></div>
  <p class=relatedtopics>Related Topics</p>
  <p><a href="conJavaTypesGeneratedFromUserDerived.html">Java Types Generated
    from User-Derived Schema Types</a></p>
</div>
<!-- InstanceEndEditable -->
<script language="JavaScript">

</script>
</body>
</html>
